<?php

namespace XLite\Model;

/**
 * The "profile" model class
 *
 * @see   ____class_see____
 * @since 1.0.0
 *
 * @Entity (repositoryClass="\XLite\Model\Repo\Profile")
 * @Table  (name="profiles",
 *      indexes={
 *          @Index (name="cms_profile", columns={"cms_name","cms_profile_id"}),
 *          @Index (name="login", columns={"login"}),
 *          @Index (name="order_id", columns={"order_id"}),
 *          @Index (name="password", columns={"password"}),
 *          @Index (name="access_level", columns={"access_level"}),
 *          @Index (name="first_login", columns={"first_login"}),
 *          @Index (name="last_login", columns={"last_login"}),
 *          @Index (name="status", columns={"status"})
 *      }
 * )
 */
class Profile extends \XLite\Module\CDev\DrupalConnector\Model\Profile
{
    /**
     * Get profile_id
     *
     * @return integer $profileId
     */
    public function getProfileId()
    {
        return $this->profile_id;
    }

    /**
     * Set login
     *
     * @param string $login
     */
    public function setLogin($login)
    {
        $this->login = $login;
    }

    /**
     * Get login
     *
     * @return string $login
     */
    public function getLogin()
    {
        return $this->login;
    }

    /**
     * Set password
     *
     * @param string $password
     */
    public function setPassword($password)
    {
        $this->password = $password;
    }

    /**
     * Get password
     *
     * @return string $password
     */
    public function getPassword()
    {
        return $this->password;
    }

    /**
     * Set password_hint
     *
     * @param string $passwordHint
     */
    public function setPasswordHint($passwordHint)
    {
        $this->password_hint = $passwordHint;
    }

    /**
     * Get password_hint
     *
     * @return string $passwordHint
     */
    public function getPasswordHint()
    {
        return $this->password_hint;
    }

    /**
     * Set password_hint_answer
     *
     * @param string $passwordHintAnswer
     */
    public function setPasswordHintAnswer($passwordHintAnswer)
    {
        $this->password_hint_answer = $passwordHintAnswer;
    }

    /**
     * Get password_hint_answer
     *
     * @return string $passwordHintAnswer
     */
    public function getPasswordHintAnswer()
    {
        return $this->password_hint_answer;
    }

    /**
     * Set access_level
     *
     * @param integer $accessLevel
     */
    public function setAccessLevel($accessLevel)
    {
        $this->access_level = $accessLevel;
    }

    /**
     * Get access_level
     *
     * @return integer $accessLevel
     */
    public function getAccessLevel()
    {
        return $this->access_level;
    }

    /**
     * Set cms_profile_id
     *
     * @param integer $cmsProfileId
     */
    public function setCmsProfileId($cmsProfileId)
    {
        $this->cms_profile_id = $cmsProfileId;
    }

    /**
     * Get cms_profile_id
     *
     * @return integer $cmsProfileId
     */
    public function getCmsProfileId()
    {
        return $this->cms_profile_id;
    }

    /**
     * Set cms_name
     *
     * @param string $cmsName
     */
    public function setCmsName($cmsName)
    {
        $this->cms_name = $cmsName;
    }

    /**
     * Get cms_name
     *
     * @return string $cmsName
     */
    public function getCmsName()
    {
        return $this->cms_name;
    }

    /**
     * Set added
     *
     * @param integer $added
     */
    public function setAdded($added)
    {
        $this->added = $added;
    }

    /**
     * Get added
     *
     * @return integer $added
     */
    public function getAdded()
    {
        return $this->added;
    }

    /**
     * Set first_login
     *
     * @param integer $firstLogin
     */
    public function setFirstLogin($firstLogin)
    {
        $this->first_login = $firstLogin;
    }

    /**
     * Get first_login
     *
     * @return integer $firstLogin
     */
    public function getFirstLogin()
    {
        return $this->first_login;
    }

    /**
     * Set last_login
     *
     * @param integer $lastLogin
     */
    public function setLastLogin($lastLogin)
    {
        $this->last_login = $lastLogin;
    }

    /**
     * Get last_login
     *
     * @return integer $lastLogin
     */
    public function getLastLogin()
    {
        return $this->last_login;
    }

    /**
     * Set status
     *
     * @param fixedstring $status
     */
    public function setStatus($status)
    {
        $this->status = $status;
    }

    /**
     * Get status
     *
     * @return fixedstring $status
     */
    public function getStatus()
    {
        return $this->status;
    }

    /**
     * Set referer
     *
     * @param string $referer
     */
    public function setReferer($referer)
    {
        $this->referer = $referer;
    }

    /**
     * Get referer
     *
     * @return string $referer
     */
    public function getReferer()
    {
        return $this->referer;
    }

    /**
     * Set language
     *
     * @param string $language
     */
    public function setLanguage($language)
    {
        $this->language = $language;
    }

    /**
     * Get language
     *
     * @return string $language
     */
    public function getLanguage()
    {
        return $this->language;
    }

    /**
     * Set last_shipping_id
     *
     * @param integer $lastShippingId
     */
    public function setLastShippingId($lastShippingId)
    {
        $this->last_shipping_id = $lastShippingId;
    }

    /**
     * Get last_shipping_id
     *
     * @return integer $lastShippingId
     */
    public function getLastShippingId()
    {
        return $this->last_shipping_id;
    }

    /**
     * Set last_payment_id
     *
     * @param integer $lastPaymentId
     */
    public function setLastPaymentId($lastPaymentId)
    {
        $this->last_payment_id = $lastPaymentId;
    }

    /**
     * Get last_payment_id
     *
     * @return integer $lastPaymentId
     */
    public function getLastPaymentId()
    {
        return $this->last_payment_id;
    }

    /**
     * Add drupalRoles
     *
     * @param XLite\Module\CDev\DrupalConnector\Model\DrupalRole $drupalRoles
     */
    public function addDrupalRoles(\XLite\Module\CDev\DrupalConnector\Model\DrupalRole $drupalRoles)
    {
        $this->drupalRoles[] = $drupalRoles;
    }

    /**
     * Get drupalRoles
     *
     * @return Doctrine\Common\Collections\Collection $drupalRoles
     */
    public function getDrupalRoles()
    {
        return $this->drupalRoles;
    }

    /**
     * Get order
     *
     * @return XLite\Model\Order $order
     */
    public function getOrder()
    {
        return $this->order;
    }

    /**
     * Get membership
     *
     * @return XLite\Model\Membership $membership
     */
    public function getMembership()
    {
        return $this->membership;
    }

    /**
     * Get pending_membership
     *
     * @return XLite\Model\Membership $pendingMembership
     */
    public function getPendingMembership()
    {
        return $this->pending_membership;
    }

    /**
     * Add addresses
     *
     * @param XLite\Model\Address $addresses
     */
    public function addAddresses(\XLite\Model\Address $addresses)
    {
        $this->addresses[] = $addresses;
    }

    /**
     * Get addresses
     *
     * @return Doctrine\Common\Collections\Collection $addresses
     */
    public function getAddresses()
    {
        return $this->addresses;
    }
}